package com.min.nio.rpc.server;

import com.min.nio.api.TestApi;
import com.min.nio.impl.HelloWorldImpl;
import com.min.nio.impl.TestApiImpl;

import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;

/**
 * create by sirmin on 2018/3/21
 */
public class Handler {
    static final Map<String, Object> apis = new HashMap<>();
    static {
        apis.put("com.min.nio.api.HelloWorld", new HelloWorldImpl());
        apis.put(TestApi.class.getName(), new TestApiImpl());
    }
    public static Object handler(final String className,final String methodName, Object arg) throws Exception {
        final Object o = apis.get(className);
        if(arg != null) {
            return o.getClass().getDeclaredMethod(methodName,arg.getClass()).invoke(o, arg);
        } else {
            return o.getClass().getDeclaredMethod(methodName).invoke(o);
        }

    }
}
